The present invention relates generally to the field of data encryption and decryption, and more specifically to a method and system for hiding a secret key. The security of information poses challenges for businesses and other organizations that transmit, store and distribute information. Cryptographic systems are intended to transform data into a form that is only readable by authorized users.
There has been a dramatic increase in the need for cryptographic systems that can protect digital data from potential hackers, eavesdroppers, forgers, and other adversaries. This is largely due to the fact that an ever increasing portion of business and communications involve software and digital electronics. In addition, the sophistication of potential adversaries and the equipment at their disposal continues to improve, which makes the problem of protecting digital data even more pressing.
Cryptographic systems are adapted to utilize and transfer information without it being compromised by adversaries. Such systems utilize keys for encoding and decoding information. Information to be protected (M) is encoded using an encoding key to produce an encoded version of the message, or cipher-text (C). The ciphertext C can then be decoded using a decoding key to recover the original message M.
In some instances the software and information to be protected is expected to execute in potentially hostile environments. In these situations, the keys used to decode the protected information must be protected even from the user. These are execution environments in which the adversary who is running the software has complete control over the machine on which it executes.